package com.hzhc.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hzhc.entity.TrainPlanDetail;
import com.hzhc.vo.CntrInfoVo;
import com.hzhc.vo.CompanyInfoVo;
import com.hzhc.vo.TrainPlanDetailVo;
import com.hzhc.vo.TrainPlanVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 班列下集装箱详情 Mapper 接口
 * </p>
 *
 * @author 1
 * @since 2024-05-30
 */
@Mapper
public interface TrainPlanDetailMapper extends BaseMapper<TrainPlanDetail> {

    IPage<TrainPlanDetailVo> getTrainPlanDetailList(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    List< TrainPlanDetailVo> getTrainPlanDetailList(@Param("vo") TrainPlanDetailVo vo);

    Integer getTrainDetailCount(@Param("id") Long id);

    IPage<TrainPlanDetailVo> getAllTrainPlanDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    List<TrainPlanDetailVo> getListGroupByCntrSize(@Param("vo") TrainPlanVo trainPlanVo);

    Integer selectCountZxcTally(@Param("ywCode") String ywCode);

    List<CompanyInfoVo> getXcTrainPlanDetailCompanyList(@Param("vo") TrainPlanDetailVo vo);

    List<TrainPlanDetail> selectCntrList(@Param("vo") CntrInfoVo vo);

    IPage<TrainPlanDetailVo> getXcDataPoolList(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    TrainPlanDetail getById(@Param("id")Long id);

    IPage<TrainPlanDetailVo> getZzTrainPlanDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getZtTrainPlanDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getXcTrainPlanDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    TrainPlanDetail getDetailById(@Param("id")Long id);

    List<String> getCompanyIdList(@Param("planId") Integer id);

    IPage<TrainPlanDetailVo> getTrainPlanDetail1(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    List<TrainPlanDetailVo> getExportDetail(@Param("vo")TrainPlanDetailVo vo);

    List<TrainPlanDetailVo> selectPortList();

    IPage<TrainPlanDetailVo> getZcAndXcDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getDdCntrPush(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getDdCntrDetail(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getZtTrainPlanDetailOne(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);

    IPage<TrainPlanDetailVo> getPadList1(Page<TrainPlanDetailVo> page,@Param("vo") TrainPlanDetailVo vo);
}
